home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 008 / animator.arc / ANIMATOR.BAS (.txt) next >
Encoding:
GW-BASIC  |  1986-12-02  |  16.6 KB  |  415 lines

  1. 5  DEF SEG=0:POKE 1047,PEEK(1047) OR 64
  2. 30  KEY OFF :CLS:SCREEN 1:DEF SEG:POKE &H4E,1
  3. 110  DEF SEG:POKE &H4E,2
  4. 150  REM MAIN
  5. 160  CLS:SCREEN 2:KEY OFF:FOR I=1 TO 10:KEY I,"":NEXT
  6. 170  REM VARIABLES
  7. 180  DIM A%(144),B%(144),D%(144),E%(144),F%(144),C%(144),G%(144),H%(144),I%(144),J%(144),K%(144),L%(144),M%(144),N%(144),O%(144),P%(144),Q%(144),R%(144),S%(144),T%(144),U%(144),A(20,54):NUM=1:STA=1:EN=20:SP=0:PL=1:GET(1,10)-(54,30),U%
  8. 190  X=9:Y=31:LOCATE 1,39:PRINT "SPEED= ";SP;:LOCATE 1,1:PRINT "NUMBER=";NUM;:LOCATE 1,14:PRINT "START=";STA;:LOCATE 1,26:PRINT "STOP=";EN;:LOCATE 1,55:PRINT "CHANGE PAUSE=";FAST
  9. 200  REM SET UP SCREEN
  10. 210  LOCATE 22,1 :PRINT "1-ANIMATE   2-EDIT    3-START PIC.    4-END PIC.":LOCATE 23,1:PRINT"5-SLOWER    6-FASTER   7-FASTER PIC. SWITCH  8-SLOWER PIC. SWITCH";:LOCATE 24,1:PRINT"9-INVERSE ALL THE PICTURES";
  11. 220   LOCATE 21,1:PRINT "(S)AVE       (L)OAD      (C)LEAR ALL            (Q)UIT      (P)ROGRAM";:LOCATE 4,78:FOR I=1 TO 10:PRINT"    ";I;:NEXT :LOCATE 13,79:FOR I=11 TO 20:PRINT"   " ;I;:NEXT
  12. 230  LOCATE 20,1:PRINT "(I)NSERT PIC.             (D)ELETE PIC.";
  13. 240  FOR T=1 TO 2:FOR I=1 TO 5 :LINE(A,X)-(A+55,Y),,B:LINE(A+60,X)-(A+115,Y),,B:A=A+120:NEXT:A=0:X=80:Y=102:NEXT
  14. 250  REM READ PICTURES
  15. 260  GET(1,10)-(54,30),A%:GET(61,10)-(114,30),B%:GET(121,10)-(174,30),C%:GET(181,10)-(234,30),D%:GET(241,10)-(294,30),E%:GET(301,10)-(354,30),F%:GET(361,10)-(414,30),G%:GET(421,10)-(474,30),H%:GET(481,10)-(534,30),I%:GET(541,10)-(594,30),J%
  16. 270  GET(1,81)-(54,101),K%:GET(61,81)-(114,101),L%:GET(121,81)-(174,101),M%:GET(181,81)-(234,101),N%:GET(241,81)-(294,101),O%:GET(301,81)-(354,101),P%:GET(361,81)-(414,101),Q%:GET(421,81)-(474,101),R%:GET(481,81)-(534,101),S%:GET(541,81)-(594,101),T%
  17. 280  REM WAIT FOR KEY
  18. 290  A$=INKEY$:IF A$="" THEN 290 ELSE IF LEN(A$)=2 THEN 830 ELSE IF VAL(A$)>0 AND VAL(A$)<10 THEN 430
  19. 300  IF A$="P" THEN 3080
  20. 310  IF A$<>"Q" THEN 350
  21. 320  LOCATE 18,1:PRINT "ARE YOU SURE YOU WANT TO QUIT? (Y/N)"
  22. 330  A$=INKEY$:IF A$="" THEN 330 ELSE IF A$="Y" THEN SCREEN 0,0,0:CLS:END ELSE LOCATE 18,1:PRINT STRING$(50,32):GOTO 290
  23. 340  REM CLEAR SCREEN
  24. 350  IF A$<>"C" THEN 380
  25. 360  LOCATE 17,1:PRINT"ARE YOU SURE (Y,N)":DEF SEG:POKE 106,0
  26. 370  A$=INKEY$:IF A$="" THEN 370 ELSE IF A$="Y" THEN CLS:GOTO 190:ELSE LOCATE 17,1:PRINT STRING$(66,32):GOTO 290
  27. 380  IF A$="S" THEN 870 ELSE IF A$="L" THEN 990
  28. 390  IF A$="D" THEN 2800 ELSE IF A$="I" THEN 2360
  29. 400  GOTO 290
  30. 410  IF FAST=0 THEN BEEP:GOTO 290 ELSE FAST=FAST-1:LOCATE 1,68:PRINT FAST;:GOTO 290
  31. 420  IF FAST=150 THEN BEEP:GOTO 290 ELSE FAST=FAST+1:LOCATE 1,68:PRINT FAST;:GOTO 290
  32. 430  ON VAL(A$) GOTO 520,1080,470,500,480,450,410,420,3040
  33. 440  REM SET SPEED
  34. 450  IF SP=15 THEN BEEP ELSE SP=SP+1:LOCATE 1,46:PRINT SP
  35. 460  GOTO 290
  36. 470  STA=NUM:LOCATE 1,20:PRINT STA:GOTO 290
  37. 480  IF SP=-15 THEN BEEP ELSE SP=SP-1:LOCATE 1,46:PRINT SP
  38. 490  GOTO 290
  39. 500  EN=NUM:LOCATE 1,31:PRINT EN:GOTO 290
  40. 510  REM ANIMATE PICTURES
  41. 520  LOCATE 17,1:PRINT"PRESS THE SPACE BAR TO HALT PICTURE":LOCATE 18,1:PRINT "USE ARROW KEYS FOR SPEED":IF STA>EN THEN QQ=-1 ELSE QQ=1
  42. 530  FOR I=STA TO EN STEP QQ
  43. 540  PL1=PL:IF PL+SP<1 THEN PL=570 ELSE IF PL+SP>580 THEN PL=1
  44. 550  PL=PL+SP
  45. 560  LOCATE 1,8:PRINT I:ON I GOTO 630,640,650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820
  46. 570  FOR N=0 TO FAST*4:NEXT:A$=INKEY$:IF A$=" " THEN 2340 ELSE IF A$<>""AND LEN (A$)<>2 THEN LOCATE 1,8:PRINT NUM:LOCATE 17,1:PRINT STRING$(150,32):GOTO 290
  47. 580  IF LEN(A$)<>2 THEN 620
  48. 590  C=ASC(RIGHT$(A$,1)):IF C=77 THEN SP=SP+1 ELSE IF C=75 THEN SP=SP-1
  49. 600  IF SP=-16 THEN SP=-15 ELSE IF SP=16 THEN SP=15
  50. 610  LOCATE 1,46:PRINT SP
  51. 620  NEXT :GOTO 530
  52. 630  PUT(PL1,52),U%,PSET:PUT(PL,52),A%:GOTO 570
  53. 640  PUT(PL1,52),U%,PSET:PUT(PL,52),B%:GOTO 570
  54. 650  PUT(PL1,52),U%,PSET:PUT(PL,52),C%:GOTO 570
  55. 660  PUT(PL1,52),U%,PSET:PUT(PL,52),D%:GOTO 570
  56. 670  PUT(PL1,52),U%,PSET:PUT(PL,52),E%:GOTO 570
  57. 680  PUT(PL1,52),U%,PSET:PUT(PL,52),F%:GOTO 570
  58. 690  PUT(PL1,52),U%,PSET:PUT(PL,52),G%:GOTO 570
  59. 700  PUT(PL1,52),U%,PSET:PUT(PL,52),H%:GOTO 570
  60. 710  PUT(PL1,52),U%,PSET:PUT(PL,52),I%:GOTO 570
  61. 720  PUT(PL1,52),U%,PSET:PUT(PL,52),J%:GOTO 570
  62. 730  PUT(PL1,52),U%,PSET:PUT(PL,52),K%:GOTO 570
  63. 740  PUT(PL1,52),U%,PSET:PUT(PL,52),L%:GOTO 570
  64. 750  PUT(PL1,52),U%,PSET:PUT(PL,52),M%:GOTO 570
  65. 760  PUT(PL1,52),U%,PSET:PUT(PL,52),N%:GOTO 570
  66. 770  PUT(PL1,52),U%,PSET:PUT(PL,52),O%:GOTO 570
  67. 780  PUT(PL1,52),U%,PSET:PUT(PL,52),P%:GOTO 570
  68. 790  PUT(PL1,52),U%,PSET:PUT(PL,52),Q%:GOTO 570
  69. 800  PUT(PL1,52),U%,PSET:PUT(PL,52),R%:GOTO 570
  70. 810  PUT(PL1,52),U%,PSET:PUT(PL,52),S%:GOTO 570
  71. 820  PUT(PL1,52),U%,PSET:PUT(PL,52),T%:GOTO 570
  72. 830  C=ASC(RIGHT$(A$,1)):IF C=77 THEN NUM=NUM+1 ELSE IF C=75 THEN NUM=NUM-1
  73. 840  IF NUM=0 THEN NUM=20 ELSE IF NUM=21 THEN NUM=1
  74. 850  LOCATE 1,8:PRINT NUM :GOTO 290
  75. 860  REM SAVE PICTURE
  76. 870  CLS:ON ERROR GOTO 25010
  77. 880  LOCATE 10,10:PRINT"F-FILES      A-ABORT SAVE      ANY OTHER KEY TO CONTINUE
  78. 890  A$=INKEY$:IF A$="" THEN 890 ELSE IF A$="F" THEN FILES"*.ANI" ELSE IF A$="A" THEN GOSUB 2310:GOTO 190
  79. 900  PRINT:PRINT :PRINT :INPUT"NAME OF FILE TO BE SAVED";A$:IF A$="" THEN GOSUB 2310:GOTO 190
  80. 910  IF INSTR(A$,".")<>0 THEN CLS:LOCATE 9,10:PRINT "NO EXTENTION PLEASE.":GOTO 880
  81. 920  IF LEN(A$)>8 THEN CLS:LOCATE 9,10:PRINT "LESS THAN 8 CHARICTERS PLEASE..":GOTO 880
  82. 930  IF VAL(RIGHT$(A$,1))>0 OR RIGHT$(A$,1)="0" THEN CLS:LOCATE 9,10:PRINT "THE FIRST CHARICTER CANT BE A NUMBER."GOTO 880
  83. 940  GOSUB 2310
  84. 950  A$=A$+".ANI"
  85. 960  DEF SEG=&HB800:BSAVE A$,0,&H4000:PRINT "IT HAS BEEN SAVED.     PRESS ANY KEY TO CONTINUE":PRINT :PRINT :PRINT
  86. 970  A$=INKEY$:IF A$="" THEN 970 ELSE CLS:GOSUB 2310 :GOTO 190
  87. 980  REM LOAD PICTURE
  88. 990  CLS:ON ERROR GOTO 25000
  89. 1000  LOCATE 10,10:PRINT "F-FILES     A-ABORT LOAD     ANY OTHER KEY TO CONTINUE"
  90. 1010  A$=INKEY$:IF A$="" THEN 1010 ELSE IF A$="F" THEN FILES"*.ANI" ELSE IF A$="A" THEN GOSUB 2310:GOTO 190
  91. 1020  PRINT :PRINT :PRINT :INPUT "NAME OF FILE TO BE LOADED";A$:IF A$="" THEN GOSUB 2310 :GOTO 190
  92. 1040   IF LEN(A$)>8 THEN CLS:LOCATE 9,10:PRINT "NO MORE THAN 8 CHARACTERS PLEASE":GOTO 1000
  93. 1050  IF VAL(RIGHT$(A$,1))>0 OR RIGHT$(A$,1)="0" THEN CLS :LOCATE 9,10:PRINT "THE FIRST CHARACTER CAN'T BE A NUMBER..":GOTO 1000
  94. 1060  A$=A$+".ANI":DEF SEG=&HB800:BLOAD A$,0:ON ERROR GOTO 0:GOTO 190
  95. 1070  REM EDIT A PICTURE
  96. 1080  LOCATE 16,1:PRINT"TYPE IN 21 TO ABORT":PRINT"NUMBER SET AT THE TOP OF THE SCREEN IS PIC TO READ FROM RETURN FOR SAME":LOCATE 18,1:INPUT"EDIT PICTURE NUMBER";B: IF B<0 OR B>21 THEN BEEP:GOTO 1080
  97. 1090  IF B=21 THEN CLS :GOSUB 2310 :GOTO 190
  98. 1100  IF B=0 THEN B=NUM
  99. 1110  REM  PUT PICTURE TO EDIT ON SCREEN
  100. 1120  CLS:LOCATE 1,24:PRINT"WAIT..":ON NUM GOTO 1130,1140,1150,1160,1170,1180,1190,1200,1210,1220,1230,1240,1240,1250,1260,1270,1280,1290,1300,1310,1320
  101. 1130  PUT(1,50),A%:GOTO 1340
  102. 1140  PUT(1,50),B%:GOTO 1340
  103. 1150  PUT(1,50),C%:GOTO 1340
  104. 1160  PUT(1,50),D%:GOTO 1340
  105. 1170  PUT(1,50),E%:GOTO 1340
  106. 1180  PUT(1,50),F%:GOTO 1340
  107. 1190  PUT(1,50),G%:GOTO 1340
  108. 1200  PUT(1,50),H%:GOTO 1340
  109. 1210  PUT(1,50),I%:GOTO 1340
  110. 1220  PUT(1,50),J%:GOTO 1340
  111. 1230  PUT(1,50),K%:GOTO 1340
  112. 1240  PUT(1,50),L%:GOTO 1340
  113. 1250  PUT(1,50),M%:GOTO 1340
  114. 1260  PUT(1,50),N%:GOTO 1340
  115. 1270  PUT(1,50),O%:GOTO 1340
  116. 1280  PUT(1,50),P%:GOTO 1340
  117. 1290  PUT(1,50),Q%:GOTO 1340
  118. 1300  PUT(1,50),R%:GOTO 1340
  119. 1310  PUT(1,50),S%:GOTO 1340
  120. 1320  PUT(1,50),T%:GOTO 1340
  121. 1330  REM GET ON-OFF POINTS
  122. 1340  FOR I=1 TO 20 :FOR X=1 TO 54:A(I,X)=POINT(X,I+49)
  123. 1350  NEXT :NEXT
  124. 1360  REM DRAW EDITING SCREEN
  125. 1370  FOR I=1 TO 20:LOCATE 3+I,14:PRINT"......................................................";:FOR J=1 TO 54:IF A(I,J)=1 THEN LOCATE 3+I,13+J:PRINT"#"
  126. 1380  NEXT :NEXT
  127. 1390  LOCATE 1,30 :PRINT"(Q)UIT    (D)RAW   (M)OVE   (E)RASE    (C)EAR    (S)AVE   (I)NVERSE"
  128. 1400  GOTO 1550
  129. 1410  REM PLACE CURSOR
  130. 1420  BLINK%=(BLINK%+1) MOD 20:IF BLINK%<10 THEN 1470 ELSE 1440
  131. 1430  REM CURSOR OFF
  132. 1440  IF A(ROW,COLUMN)=0 THEN CH$="." ELSE IF A(ROW,COLUMN)=1 THEN CH$="#"
  133. 1450  GOTO 1480
  134. 1460  REM CURSOR ON
  135. 1470  IF CURS=-1 THEN CH$="-" ELSE IF CURS=0 THEN CH$="*" ELSE IF CURS=1 THEN CH$="+"
  136. 1480  LOCATE 3+ROW,13+COLUMN:PRINT CH$;:RETURN
  137. 1490  REM REMOVE CURSOR
  138. 1500  IF A(ROW,COLUMN)=0 THEN CH$="." ELSE IF A(ROW,COLUMN)=1 THEN CH$="#"
  139. 1510  LOCATE 3+ROW,13+COLUMN:PRINT CH$;:RETURN
  140. 1520  LOCATE 24,18:PRINT "WAIT";:FOR I=1 TO 20:LOCATE 3+I,14:PRINT STRING$(54,46);
  141. 1530  NEXT:ERASE A:DIM A(20,54):LOCATE 24,18:PRINT "    ";:PUT(1,50),U%,PSET:RETURN
  142. 1540  REM SET CURSOR
  143. 1550  ROW=1:COLUMN=1:CURS=0
  144. 1560  REM MAIN LOOP
  145. 1570  BLINK%=0:IF CURS=-1 THEN A(ROW,COLUMN)=0:PSET(COLUNM,ROW+49),0 ELSE IF CURS=+1 THEN A(ROW,COLUMN)=1:PSET(COLUMN,ROW+49),1
  146. 1580  GOSUB 1420
  147. 1590  A$=INKEY$:DEF SEG:POKE 106,0:IF LEN(A$)=0 THEN 1580 ELSE IF LEN(A$)=1 THEN 1600 ELSE IF LEN(A$)=2 THEN 1720
  148. 1600  CODE1=ASC(A$) AND &H5F
  149. 1610  REM READ KEYS
  150. 1620  IF CODE1=ASC("E") THEN 2040
  151. 1630  IF CODE1=ASC("M") THEN 2050
  152. 1640  IF CODE1=ASC("D") THEN 2060
  153. 1650  IF CODE1=ASC("C") THEN 2080
  154. 1660  IF CODE1=ASC("S") THEN 2100
  155. 1670  IF CODE1=ASC("Q") THEN GOSUB 2310:GOTO 190
  156. 1680  IF CODE1=ASC("I") THEN 1710
  157. 1690  GOTO 1580
  158. 1700  REM INVERSE A PICTURE
  159. 1710  GET(1,50)-(54,70),U%:PUT(1,50),U%,PRESET:GET(1,75)-(54,95),U%:GOTO 1340
  160. 1720  IF ASC(A$)<>0 THEN 1570 ELSE CODE2=ASC(RIGHT$(A$,1)):GOSUB 1500
  161. 1730  REM READ ARROW KEYS
  162. 1740  IF CODE2=71 THEN 1840
  163. 1750  IF CODE2=73 THEN 1870
  164. 1760  IF CODE2=79 THEN 1900
  165. 1770  IF CODE2=81 THEN 1930
  166. 1780  IF CODE2=72 THEN 1960
  167. 1790  IF CODE2=75 THEN 1980
  168. 1800  IF CODE2=77 THEN 2000
  169. 1810  IF CODE2=80 THEN 2020
  170. 1820  GOTO 1580
  171. 1830  REM MOVE THE CURSOR
  172. 1840  IF ROW=1 THEN ROW=21
  173. 1850  IF COLUMN=1 THEN COLUMN=55
  174. 1860  ROW=ROW-1:COLUMN=COLUMN-1:GOTO 1570
  175. 1870  IF ROW=1 THEN ROW=21
  176. 1880  IF COLUMN=54 THEN COLUMN=0
  177. 1890  ROW=ROW-1:COLUMN=COLUMN+1:GOTO 1570
  178. 1900  IF ROW=20 THEN ROW=0
  179. 1910  IF COLUMN=1 THEN COLUMN=55
  180. 1920  ROW=ROW+1:COLUMN=COLUMN-1:GOTO 1570
  181. 1930  IF ROW=20 THEN ROW=0
  182. 1940  IF COLUMN=54 THEN COLUMN=0
  183. 1950  ROW=ROW+1:COLUMN=COLUMN+1:GOTO 1570
  184. 1960  IF ROW=1 THEN ROW=21
  185. 1970  ROW=ROW-1:GOTO 1570
  186. 1980  IF COLUMN=1 THEN COLUMN=55
  187. 1990  COLUMN=COLUMN-1:GOTO 1570
  188. 2000  IF COLUMN=54 THEN COLUMN=0
  189. 2010  COLUMN=COLUMN+1:GOTO 1570
  190. 2020  IF ROW=20 THEN ROW=0
  191. 2030  ROW=ROW+1:GOTO 1570
  192. 2040  CURS=-1:GOTO 1570
  193. 2050  CURS=0:GOTO 1570
  194. 2060  CURS=+1:GOTO 1570
  195. 2070  REM CLEAR PICTURE
  196. 2080  GOSUB 1520:GOTO 1550
  197. 2090  REM SAVE PICTURE
  198. 2100  LOCATE 1,24:PRINT"WAIT...":ON B GOTO 2110,2120,2130,2140,2150,2160,2170,2180,2190,2200,2210,2220,2230,2240,2250,2260,2270,2280,2290,2300
  199. 2110  GET(1,50)-(54,70),A%:GOSUB 2310:GOTO 190
  200. 2120  GET(1,50)-(54,70),B%:GOSUB 2310:GOTO 190
  201. 2130  GET(1,50)-(54,70),C%:GOSUB 2310:GOTO 190
  202. 2140  GET(1,50)-(54,70),D%:GOSUB 2310:GOTO 190
  203. 2150  GET(1,50)-(54,70),E%:GOSUB 2310:GOTO 190
  204. 2160  GET(1,50)-(54,70),F%:GOSUB 2310:GOTO 190
  205. 2170  GET(1,50)-(54,70),G%:GOSUB 2310:GOTO 190
  206. 2180  GET(1,50)-(54,70),H%:GOSUB 2310:GOTO 190
  207. 2190  GET(1,50)-(54,70),I%:GOSUB 2310:GOTO 190
  208. 2200  GET(1,50)-(54,70),J%:GOSUB 2310:GOTO 190
  209. 2210  GET(1,50)-(54,70),K%:GOSUB 2310:GOTO 190
  210. 2220  GET(1,50)-(54,70),L%:GOSUB 2310:GOTO 190
  211. 2230  GET(1,50)-(54,70),M%:GOSUB 2310:GOTO 190
  212. 2240  GET(1,50)-(54,70),N%:GOSUB 2310:GOTO 190
  213. 2250  GET(1,50)-(54,70),O%:GOSUB 2310:GOTO 190
  214. 2260  GET(1,50)-(54,70),P%:GOSUB 2310:GOTO 190
  215. 2270  GET(1,50)-(54,70),Q%:GOSUB 2310:GOTO 190
  216. 2280  GET(1,50)-(54,70),R%:GOSUB 2310:GOTO 190
  217. 2290  GET(1,50)-(54,70),S%:GOSUB 2310:GOTO 190
  218. 2300  GET(1,50)-(54,70),T%:GOSUB 2310:GOTO 190
  219. 2310  CLS:PUT(1,10),A%:PUT(61,10),B%:PUT(121,10),C%:PUT(181,10),D%:PUT(241,10),E%:PUT(301,10),F%:PUT(361,10),G%:PUT(421,10),H%:PUT(481,10),I%:PUT(541,10),J%
  220. 2320  PUT(1,81),K%:PUT(61,81),L%:PUT(121,81),M%:PUT(181,81),N%:PUT(241,81),O%:PUT(301,81),P%:PUT(361,81),Q%:PUT(421,81),R%:PUT(481,81),S%:PUT(541,81),T%,PSET
  221. 2330  RETURN
  222. 2340  IF INKEY$="" THEN 2340 ELSE 620
  223. 2350  REM INSERT A BLANK PICTURE
  224. 2360  LOCATE 18,1:PRINT "ARE YOU SURE? THIS WILL MOVE 20 OFF THE END"
  225. 2370  A$=INKEY$:IF A$="" THEN 2370 ELSE IF A$=<>"Y" THEN LOCATE 18,1:PRINT STRING$(50,32):GOTO 190
  226. 2380  ON NUM GOTO 2390,2400,2410,2420,2430,2440,2450,2460,2470,2480,2490,2500,2510,2520,2530,2540,2550,2560,2570,2820
  227. 2390  GET(1,10)-(54,30),B%
  228. 2400  GET(61,10)-(114,30),C%
  229. 2410  GET(121,10)-(174,30),D%
  230. 2420  GET(181,10)-(234,30),E%
  231. 2430  GET(241,10)-(294,30),F%
  232. 2440  GET(301,10)-(354,30),G%
  233. 2450  GET(361,10)-(414,30),H%
  234. 2460  GET(421,10)-(474,30),I%
  235. 2470  GET(481,10)-(534,30),J%
  236. 2480  GET(541,10)-(594,30),K%
  237. 2490  GET(1,81)-(54,101),L%
  238. 2500  GET(61,81)-(114,101),M%
  239. 2510  GET(121,81)-(174,101),N%
  240. 2520  GET(181,81)-(234,101),O%
  241. 2530  GET(241,81)-(294,101),P%
  242. 2540  GET(301,81)-(354,101),Q%
  243. 2550  GET(361,81)-(414,101),R%
  244. 2560  GET(421,81)-(474,101),S%
  245. 2570  GET(481,81)-(534,101),T%
  246. 2580  CLS:ON NUM GOTO 2590,2600,2610,2620,2630,2640,2650,2660,2670,2680,2690,2700,2710,2720,2730,2740,2750,2760,2770,2780
  247. 2590  GET(1,50)-(54,70),A%:GOSUB 2310:GOTO 190
  248. 2600  GET(1,50)-(54,70),B%:GOSUB 2310:GOTO 190
  249. 2610  GET(1,50)-(54,70),C%:GOSUB 2310:GOTO 190
  250. 2620  GET(1,50)-(54,70),D%:GOSUB 2310:GOTO 190
  251. 2630  GET(1,50)-(54,70),E%:GOSUB 2310:GOTO 190
  252. 2640  GET(1,50)-(54,70),F%:GOSUB 2310:GOTO 190
  253. 2650  GET(1,50)-(54,70),G%:GOSUB 2310:GOTO 190
  254. 2660  GET(1,50)-(54,70),H%:GOSUB 2310:GOTO 190
  255. 2670  GET(1,50)-(54,70),I%:GOSUB 2310:GOTO 190
  256. 2680  GET(1,50)-(54,70),J%:GOSUB 2310:GOTO 190
  257. 2690  GET(1,50)-(54,70),K%:GOSUB 2310:GOTO 190
  258. 2700  GET(1,50)-(54,70),L%:GOSUB 2310:GOTO 190
  259. 2710  GET(1,50)-(54,70),M%:GOSUB 2310:GOTO 190
  260. 2720  GET(1,50)-(54,70),N%:GOSUB 2310:GOTO 190
  261. 2730  GET(1,50)-(54,70),O%:GOSUB 2310:GOTO 190
  262. 2740  GET(1,50)-(54,70),P%:GOSUB 2310:GOTO 190
  263. 2750  GET(1,50)-(54,70),Q%:GOSUB 2310:GOTO 190
  264. 2760  GET(1,50)-(54,70),R%:GOSUB 2310:GOTO 190
  265. 2770  GET(1,50)-(54,70),S%:GOSUB 2310:GOTO 190
  266. 2780  GET(1,50)-(54,70),T%:GOSUB 2310:GOTO 190
  267. 2790  REM DELETE A PICTURE
  268. 2800  LOCATE 18,1:PRINT"ARE YOU SURE YOU WANT TO DELETE THIS NUMBER"
  269. 2810  A$=INKEY$:IF A$="" THEN 2810 ELSE IF A$<>"Y" THEN LOCATE 18,1:PRINT STRING$(50,32):GOTO 190
  270. 2820  ON NUM GOTO 2830,2840,2850,2860,2870,2880,2890,2900,2910,2920,2930,2940,2940,2950,2970,2980,2990,300,3010,3020
  271. 2830  GET(61,10)-(114,30),A%
  272. 2840  GET(121,10)-(174,30),B%
  273. 2850  GET(181,10)-(234,30),C%
  274. 2860  GET(241,10)-(294,30),D%
  275. 2870  GET(301,10)-(354,30),E%
  276. 2880  GET(361,10)-(414,30),F%
  277. 2890  GET(421,10)-(474,30),G%
  278. 2900  GET(481,10)-(534,30),H%
  279. 2910  GET(541,10)-(594,30),I%
  280. 2920  GET(1,81)-(54,101),J%
  281. 2930  GET(61,81)-(114,101),K%
  282. 2940  GET(121,81)-(174,101),L%
  283. 2950  GET(181,81)-(234,101),M%
  284. 2960  GET(241,81)-(294,101),N%
  285. 2970  GET(301,81)-(354,101),O%
  286. 2980  GET(361,81)-(414,101),P%
  287. 2990  GET(421,81)-(474,101),Q%
  288. 3000  GET(481,81)-(534,101),R%
  289. 3010  GET(541,81)-(594,101),S%
  290. 3020  CLS:GET(1,10)-(54,30),T%:GOSUB 2310:GOTO 190
  291. 3030  REM INVERSE ALL PICTURES
  292. 3040  CLS:PUT(1,10),A%,PRESET:PUT(61,10),B%,PRESET:PUT(121,10),C%,PRESET:PUT(181,10),D%,PRESET:PUT(241,10),E%,PRESET:PUT(301,10),F%,PRESET:PUT(361,10),G%,PRESET:PUT(421,10),H%,PRESET:PUT(481,10),I%,PRESET:PUT(541,10),J%,PRESET
  293. 3050  PUT(1,81),K%,PRESET:PUT(61,81),L%,PRESET:PUT(121,81),M%,PRESET:PUT(181,81),N%,PRESET:PUT(241,81),O%,PRESET:PUT(301,81),P%,PRESET:PUT(361,81),Q%,PRESET:PUT(421,81),R%,PRESET:PUT(481,81),S%,PRESET:PUT(541,81),T%,PRESET
  294. 3060  GOTO 190
  295. 3070  REM MAKE A PROGRAM
  296. 3080  LOCATE 18,1:PRINT"ARE YOU SURE YOU WANT TO MAKE THES SET-UP INTO A PROGRAM?"
  297. 3090  A$=INKEY$:IF A$="" THEN 3090 ELSE IF A$="Y" THEN 3100 ELSE LOCATE 18,1:PRINT STRING$(66,32):GOTO 290
  298. 3100  G=30:OPEN "O",#1,"PRG.BAS"
  299. 3110  PRINT #1,"10 CLS:KEY OFF:SCREEN 2:SP="+STR$(SP)=":PL=1"
  300. 3120  IF STA>EN THEN QQ=-1 ELSE QQ=1
  301. 3130  A$="20 DIM ':FOR I=STA TO IN STEPQQ:IF I<>STA THEN A$=A$+","GRAM
  302. 3140  ON I GOTO 3150,3150,3170,3180,3190,3200,3210,3220,3230,3240,3250,3260,3270,3280,3290,3300,3310,3320,3330,3340
  303. 3150  A$=A$+"A%(144)":GOTO 3350
  304. 3160  A$=A$+"B%(144)":GOTO 3350
  305. 3170  A$=A$+"C%(144)":GOTO 3350
  306. 3180  A$=A$+"D%(144)":GOTO 3350
  307. 3190  A$=A$+"E%(144)":GOTO 3350
  308. 3200  A$=A$+"F%(144)":GOTO 3350
  309. 3210  A$=A$+"G%(144)":GOTO 3350
  310. 3220  A$=A$+"H%(144)":GOTO 3350
  311. 3230  A$=A$+"I%(144)":GOTO 3350
  312. 3240  A$=A$+"J%(144)":GOTO 3350
  313. 3250  A$=A$+"K%(144)":GOTO 3350
  314. 3260  A$=A$+"L%(144)":GOTO 3350
  315. 3270  A$=A$+"M%(144)":GOTO 3350
  316. 3280  A$=A$+"N%(144)":GOTO 3350
  317. 3290  A$=A$+"O%(144)":GOTO 3350
  318. 3300  A$=A$+"P%(144)":GOTO 3350
  319. 3310  A$=A$+"Q%(144)":GOTO 3350
  320. 3320  A$=A$+"R%(144)":GOTO 3350
  321. 3330  A$=A$+"S%(144)":GOTO 3350
  322. 3340  A$=A$+"T%(144)":GOTO 3350
  323. 3350  NEXT
  324. 3360  A$=A$+",U%(144)":PRINT #1,A$:PRINT #1,"30 GET(1,1)-(54,20),U%
  325. 3370  IF STA>EN THEN QQ=-1 ELSE QQ=1
  326. 3380  FOR P=STA TO EN STEP QQ
  327. 3390  CLS:ON P GOTO 3400,3410,3420,3430,3440,3450,3460,3470,3480,3490,3500,3510,3520,3530,3540,3550,3560,3570,3580,3590
  328. 3400  PUT(1,50),A%:GOTO 3600
  329. 3410  PUT(1,50),B%:GOTO 3600
  330. 3420  PUT(1,50),C%:GOTO 3600
  331. 3430  PUT(1,50),D%:GOTO 3600
  332. 3440  PUT(1,50),E%:GOTO 3600
  333. 3450  PUT(1,50),F%:GOTO 3600
  334. 3460  PUT(1,50),G%:GOTO 3600
  335. 3470  PUT(1,50),H%:GOTO 3600
  336. 3480  PUT(1,50),I%:GOTO 3600
  337. 3490  PUT(1,50),J%:GOTO 3600
  338. 3500  PUT(1,50),K%:GOTO 3600
  339. 3510  PUT(1,50),L%:GOTO 3600
  340. 3520  PUT(1,50),M%:GOTO 3600
  341. 3530  PUT(1,50),N%:GOTO 3600
  342. 3540  PUT(1,50),O%:GOTO 3600
  343. 3550  PUT(1,50),P%:GOTO 3600
  344. 3560  PUT(1,50),Q%:GOTO 3600
  345. 3570  PUT(1,50),R%:GOTO 3600
  346. 3580  PUT(1,50),S%:GOTO 3600
  347. 3590  PUT(1,50),T%:GOTO 3600
  348. 3600  FOR X=1 TO 54:G=G+10:A$=STR$(G):FOR A$=RIGHT$(A$,LEN(A$)-1):FOR I=1 TO 20 :IF POINT(X,I+49)=1 THEN A$=A$+":PSET(":B$=STR$(X):A$=A$+RIGHT$(B$,LEN(B$)-1):A$=A$+",":B$=STR$(I+49):A$=A$+RIGHT+(B$,LEN(B$)-):A$=A$+")"
  349. 3610  NEXT:IF LEN(A$)>6 THEN B$=LEFT$(A$,LEN(A$)-LEN(B$))-1):A$=B$+" "+A$:PRINT #1,A$ ELSE G=G-10
  350. 3620  NEXT
  351. 3630  G=G+10:A$=STR$(G):A$=RIGHT$(A$,LEN(A$)-1):ON P GOTO 3640,3650,3660,3670,3680,3690,3700,3710,3720,3730,3740,3750,3760,3770,3780,3790,3800,3810,3820,3830
  352. 3640  A$=A$+" GET(1,50)-(54,70),A%":GOTO 3840
  353. 3650  A$=A$+" GET(1,50)-(54,70),B%":GOTO 3840
  354. 3660  A$=A$+" GET(1,50)-(54,70),C%":GOTO 3840
  355. 3670  A$=A$+" GET(1,50)-(54,70),D%":GOTO 3840
  356. 3680  A$=A$+" GET(1,50)-(54,70),E%":GOTO 3840
  357. 3690  A$=A$+" GET(1,50)-(54,70),F%":GOTO 3840
  358. 3700  A$=A$+" GET(1,50)-(54,70),G%":GOTO 3840
  359. 3710  A$=A$+" GET(1,50)-(54,70),H%":GOTO 3840
  360. 3720  A$=A$+" GET(1,50)-(54,70),I%":GOTO 3840
  361. 3730  A$=A$+" GET(1,50)-(54,70),J%":GOTO 3840
  362. 3740  A$=A$+" GET(1,50)-(54,70),K%":GOTO 3840
  363. 3750  A$=A$+" GET(1,50)-(54,70),L%":GOTO 3840
  364. 3760  A$=A$+" GET(1,50)-(54,70),M%":GOTO 3840
  365. 3770  A$=A$+" GET(1,50)-(54,70),N%":GOTO 3840
  366. 3780  A$=A$+" GET(1,50)-(54,70),O%":GOTO 3840
  367. 3790  A$=A$+" GET(1,50)-(54,70),P%":GOTO 3840
  368. 3800  A$=A$+" GET(1,50)-(54,70),Q%":GOTO 3840
  369. 3810  A$=A$+" GET(1,50)-(54,70),R%":GOTO 3840
  370. 3820  A$=A$+" GET(1,50)-(54,70),S%":GOTO 3840
  371. 3830  A$=A$+" GET(1,50)-(54,70),T%":GOTO 3840
  372. 3840  A$=A$+":CLS":PRINT #1,A$:NEXT
  373. 3850  IF STA=EN THEN STN=1:EA=1:GOTO 3880
  374. 3860  IF STA>EN THEN STA=STA-EN:EA=1 ELSE EA=EN-STA:STN=1
  375. 3869  IF STA>EN THEN STA=STA-EN:EA=1 ELSE EA=EN-STA:STN=1
  376. 3870  IF EA+QQ=0 THEN EA=EA-QQ
  377. 3880  G=G+10:R=G:A$=RIGHT$(STR$(G),LEN(STR$(G))-1)+" FOR I="+RIGHT$(STR$(STN),LEN(STR$(STN))-1)+" TO"+STR$(EA+QQ)+" STEP"+STR$(QQ):PRINT #1,A$:G=G+10
  378. 3890  A$=RIGHT$(STR$(G),LEN(STR$(G))-1)+" FOR P=1 TO":A$=A$+STR$(INT(FAST*4.2))+":NEXT:PL1=PL:IF PL+SP<1 THEN PL=570 ELSE IF PL+SP>580 THEN PL=1"
  379. 3900  G=G+10:PRINT #1,A$
  380. 3910  A$=RIGHT$(STR$(G),LEN(STR$(G))-1)+" PL=PL+SP":PRINT #1,A$:G=G+10
  381. 3920  A$=REGHT$(STR$(G),LEN(STR$(G))-1+" ON I GOTO":X=G+10:A$=A$+STR$(X):FOR I=STA TO EN+(QQ*-1) STEP QQ:X=X+10:A$=A$+","+RIGHT$(STR$(X),LEN(STR$(X))-1):NEXT :PRINT #1,A$
  382. 3930  IF STA>EN THEN Q=STA:W=EN ELSE IF EN>STA THEN Q=IN:W=STA
  383. 3940  FOR P=W TO Q
  384. 3950  G=G+10:A$=REGHT$(STR$(G),LEN(STR$(G))-1):ON P GOTO 3960,3970,3980,3990,4000,4010,4020,4030,4040,4050,4060,4070,4080,4090,4100,4110,4120,4130,4140,4150
  385. 3960  A$=A$+" PUT(PL1,52),U%,PSET:PUT(PL,52),A%:GOTO 4160
  386. 3970  A$=A$+" PUT(PL1,52),U%,PSET:PUT(PL,52),B%:GOTO 4160
  387. 3980  A$=A$+" PUT(PL1,52),U%,PSET:PUT(PL,52),C%:GOTO 4160
  388. 3990  A$=A$+" PUT(PL1,52),U%,PSET:PUT(PL,52),D%:GOTO 4160
  389. 4000  A$=A$+" PUT(PL1,52),U%,PSET:PUT(PL,52),E%:GOTO 4160
  390. 4010  A$=A$+" PUT(PL1,52),U%,PSET:PUT(PL,52),F%:GOTO 4160
  391. 4020  A$=A$+" PUT(PL1,52),U%,PSET:PUT(PL,52),G%:GOTO 4160
  392. 4030  A$=A$+" PUT(PL1,52),U%,PSET:PUT(PL,52),H%:GOTO 4160
  393. 4040  A$=A$+" PUT(PL1,52),U%,PSET:PUT(PL,52),I%:GOTO 4160
  394. 4050  A$=A$+" PUT(PL1,52),U%,PSET:PUT(PL,52),J%:GOTO 4160
  395. 4060  A$=A$+" PUT(PL1,52),U%,PSET:PUT(PL,52),K%:GOTO 4160
  396. 4070  A$=A$+" PUT(PL1,52),U%,PSET:PUT(PL,52),L%:GOTO 4160
  397. 4080  A$=A$+" PUT(PL1,52),U%,PSET:PUT(PL,52),M%:GOTO 4160
  398. 4090  A$=A$+" PUT(PL1,52),U%,PSET:PUT(PL,52),N%:GOTO 4160
  399. 4100  A$=A$+" PUT(PL1,52),U%,PSET:PUT(PL,52),O%:GOTO 4160
  400. 4110  A$=A$+" PUT(PL1,52),U%,PSET:PUT(PL,52),P%:GOTO 4160
  401. 4120  A$=A$+" PUT(PL1,52),U%,PSET:PUT(PL,52),Q%:GOTO 4160
  402. 4130  A$=A$+" PUT(PL1,52),U%,PSET:PUT(PL,52),R%:GOTO 4160
  403. 4140  A$=A$+" PUT(PL1,52),U%,PSET:PUT(PL,52),S%:GOTO 4160
  404. 4150  A$=A$+" PUT(PL1,52),U%,PSET:PUT(PL,52),T%:GOTO 4160
  405. 4160  A$=A$+"GOTO "+STR$(X+10);PRINT #1,A$:NEXT :G=X+10
  406. 4170  A$=RIGHT$(STR$(G),LEN(STR$(G))-1):A$=A$+" NEXT:GOTO "+STR$(R):PRINT #1,A$
  407. 4180  CLOSE #1:CLS:PRINT"BEFORE YOU DO ANYTHING ELSE LOAD THE PROGRAM<PRG> AND THEN SAVE IT UNDER THE NAME YOU WANT":END
  408. 25000  GOSUB 25020:RESUME 990
  409. 25010  GOSUB 25020:RESUME 870
  410. 25020  PRINT :PRINT "                                DISK ERROR#"ERR
  411. 25030  PRINT :PRINT "                             HIT SPACE       BAR TO CONTINUE"
  412. 25040  A$=INKEY$:IF A$<> "" THEN 25040 ELSE RETURN
  413. 41230  'ASD
  414. 41231  'ASD
  415.